6 int m
[] = {1,2, 5};//, 10, 25, 50};
8 long long f(const int &n
, const int &i
){
10 printf("f(%d,%d) retornando 0\n", n
, i
);
13 if (n
<= 1 || i
== 1){
14 printf("f(%d,%d) retornando 1\n", n
, i
);
18 for (int j
=1; j
<=M
; ++j
)
20 printf("f(%d,%d) retornando %lld\n", n
, i
, r
);
24 long long f(const int &n
){
25 //printf("n es: %d\n", n);
30 int pisoMonetario
= 9999;
31 for (int i
=M
-1; n
< pisoMonetario
; --i
)
33 //pisoMonetario tiene la moneda más proxima hacia abajo
35 //printf("pisoMonetario es: %d\n", pisoMonetario);
38 for (int i
=0; i
<M
; ++i
){
39 //printf("i es: %d\n", i);
40 //printf("m[i] es: %d\n", m[i]);
41 if (n
- m
[i
] > pisoMonetario
)
50 while (scanf("%d", &n
) == 1){
51 cout
<< f(n
, M
) << endl
;